package com.wgy.day27.接口静态方法of;

import java.util.List;
import java.util.Map;
import java.util.Set;

/*
JDK9的新特性:
List接口,Set接口,Map接口:里面增加了一个静态方法of,可以给集合一次性添加多个元素
                       static <E> list<E> of (E...elements)
         使用前提:当集合中存储的元素的个数已经确定,不再改变时使用
         注意事项: 1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
                 2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
                 3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
*/
public class Demo01of {
    public static void main(String[] args) {
        List<String> list=List.of("a","b","a","c","d");
        System.out.println(list);//[a, b, a, c, d] 有序的,元素可重复的
      //  list.add("e");//UnsupportedOperationException 不支持异常操作

        //Set<String> set=Set.of("a","b","a","c","d");//IllegalArgumentException 非法参数异常,有重复的元素
        Set<String> set=Set.of("a","b","n","c","d");
        System.out.println(set);//[b, a, d, n, c] 无序的,元素不可重复的
      //  set.add("m");//UnsupportedOperationException 不支持异常操作

      /* Map<String,Integer>map=Map.of("张三",18,"李四",20,"王五",15,"张三",19);
         IllegalArgumentException: duplicate key: 张三
       */
        Map<String,Integer>map=Map.of("张三",18,"李四",20,"王五",15);
        System.out.println(map); // {李四=20, 王五=15, 张三=18} 无序的,key元素不可以重复的
        //map.put("赵六",20);//UnsupportedOperationException  不支持异常操作

    }
}
